// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package resourcepath

import (
	"fmt"

	"github.com/GoogleCloudPlatform/khi/pkg/model/enum"
)

func ControlplaneComponent(cluster string, component string) ResourcePath {
	if cluster == "" {
		cluster = nonSpecifiedPlaceholder
	}
	if component == "" {
		component = nonSpecifiedPlaceholder
	}
	controlPlaneComponentResourcePath := SubresourceLayerGeneralItem("@Cluster", "controlplane", "cluster-scope", cluster, component)
	controlPlaneComponentResourcePath.ParentRelationship = enum.RelationshipControlPlaneComponent
	return controlPlaneComponentResourcePath
}

func ControllerManagerControlplaneComponent(cluster string, controllerName string) ResourcePath {
	return ControlplaneComponent(cluster, fmt.Sprintf("%s(controller-manager)", controllerName))
}
